gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]: Basic framework
authorOwen Taylor <otaylor@redhat.com>
Thu, 23 Oct 2003 04:22:32 +0000 (04:22 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Thu, 23 Oct 2003 04:22:32 +0000 (04:22 +0000)
Wed Oct 22 23:20:04 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkfilechooser.[ch] gtk/gtkfilefilter.[ch]
        gtk/gtkfilechooserwidget.[ch] gtk/gtkfilechooserdialog.[ch]:
        gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]:
        Basic framework for the new file selector widget.

        * gtk/gtkfilechooserdefault.[ch] gtk/gtkcellrenderersep.[ch]
        gtk/gtkfilechooserentry.[ch] gtk/gtkfilesystemmodel.[ch]:
        Initial implementation of the GtkFileChooser user interface.

        * gtk/gtkfilesystemunix.[ch]: GtkFileSystem implementation
        for Unix files.

        * configure.in gtk/Makefile.am gtk/xdgmime: Build code
        for freedesktop.org MIME system on Unix.

        * tests/testfilechooser.c: Test program for GtkFileChooser

        * tests/prop-editor.c: Add support for properties on interfaces.

23 files changed:
ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
configure.in
gtk/Makefile.am
gtk/gtk.h
gtk/gtkfilechooser.c
gtk/gtkfilechooserdefault.c
gtk/gtkfilechooserdialog.c
gtk/gtkfilechooserentry.c
gtk/gtkfilechooserutils.c
gtk/gtkfilechooserwidget.c
gtk/gtkfilefilter.c
gtk/gtkfilesystem.c
gtk/gtkfilesystem.h
gtk/gtkfilesystemmodel.c
gtk/gtkfilesystemunix.c
gtk/xdgmime/Makefile.am
tests/Makefile.am
tests/prop-editor.c
tests/testfilechooser.c

index e027fd65170635f8155a6fc7b38cd2e64ee8175b..d3893a4a557def0ef81b6bf22e0dc67a56a96894 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+Wed Oct 22 23:20:04 2003  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilechooser.[ch] gtk/gtkfilefilter.[ch] 
+       gtk/gtkfilechooserwidget.[ch] gtk/gtkfilechooserdialog.[ch]:
+       gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]:
+       Basic framework for the new file selector widget.
+
+       * gtk/gtkfilechooserdefault.[ch] gtk/gtkcellrenderersep.[ch] 
+       gtk/gtkfilechooserentry.[ch] gtk/gtkfilesystemmodel.[ch]:
+       Initial implementation of the GtkFileChooser user interface.
+
+       * gtk/gtkfilesystemunix.[ch]: GtkFileSystem implementation
+       for Unix files.
+
+       * configure.in gtk/Makefile.am gtk/xdgmime: Build code
+       for freedesktop.org MIME system on Unix.
+
+       * tests/testfilechooser.c: Test program for GtkFileChooser
+
+       * tests/prop-editor.c: Add support for properties on interfaces.
+
 Tue Oct 21 16:12:51 2003  Owen Taylor  <otaylor@redhat.com>
 
        * demos/gtk-demo/menus.c (do_menus): Fix some unused
index e027fd65170635f8155a6fc7b38cd2e64ee8175b..d3893a4a557def0ef81b6bf22e0dc67a56a96894 100644 (file)
@@ -1,3 +1,24 @@
+Wed Oct 22 23:20:04 2003  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilechooser.[ch] gtk/gtkfilefilter.[ch] 
+       gtk/gtkfilechooserwidget.[ch] gtk/gtkfilechooserdialog.[ch]:
+       gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]:
+       Basic framework for the new file selector widget.
+
+       * gtk/gtkfilechooserdefault.[ch] gtk/gtkcellrenderersep.[ch] 
+       gtk/gtkfilechooserentry.[ch] gtk/gtkfilesystemmodel.[ch]:
+       Initial implementation of the GtkFileChooser user interface.
+
+       * gtk/gtkfilesystemunix.[ch]: GtkFileSystem implementation
+       for Unix files.
+
+       * configure.in gtk/Makefile.am gtk/xdgmime: Build code
+       for freedesktop.org MIME system on Unix.
+
+       * tests/testfilechooser.c: Test program for GtkFileChooser
+
+       * tests/prop-editor.c: Add support for properties on interfaces.
+
 Tue Oct 21 16:12:51 2003  Owen Taylor  <otaylor@redhat.com>
 
        * demos/gtk-demo/menus.c (do_menus): Fix some unused
index e027fd65170635f8155a6fc7b38cd2e64ee8175b..d3893a4a557def0ef81b6bf22e0dc67a56a96894 100644 (file)
@@ -1,3 +1,24 @@
+Wed Oct 22 23:20:04 2003  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilechooser.[ch] gtk/gtkfilefilter.[ch] 
+       gtk/gtkfilechooserwidget.[ch] gtk/gtkfilechooserdialog.[ch]:
+       gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]:
+       Basic framework for the new file selector widget.
+
+       * gtk/gtkfilechooserdefault.[ch] gtk/gtkcellrenderersep.[ch] 
+       gtk/gtkfilechooserentry.[ch] gtk/gtkfilesystemmodel.[ch]:
+       Initial implementation of the GtkFileChooser user interface.
+
+       * gtk/gtkfilesystemunix.[ch]: GtkFileSystem implementation
+       for Unix files.
+
+       * configure.in gtk/Makefile.am gtk/xdgmime: Build code
+       for freedesktop.org MIME system on Unix.
+
+       * tests/testfilechooser.c: Test program for GtkFileChooser
+
+       * tests/prop-editor.c: Add support for properties on interfaces.
+
 Tue Oct 21 16:12:51 2003  Owen Taylor  <otaylor@redhat.com>
 
        * demos/gtk-demo/menus.c (do_menus): Fix some unused
index e027fd65170635f8155a6fc7b38cd2e64ee8175b..d3893a4a557def0ef81b6bf22e0dc67a56a96894 100644 (file)
@@ -1,3 +1,24 @@
+Wed Oct 22 23:20:04 2003  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilechooser.[ch] gtk/gtkfilefilter.[ch] 
+       gtk/gtkfilechooserwidget.[ch] gtk/gtkfilechooserdialog.[ch]:
+       gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]:
+       Basic framework for the new file selector widget.
+
+       * gtk/gtkfilechooserdefault.[ch] gtk/gtkcellrenderersep.[ch] 
+       gtk/gtkfilechooserentry.[ch] gtk/gtkfilesystemmodel.[ch]:
+       Initial implementation of the GtkFileChooser user interface.
+
+       * gtk/gtkfilesystemunix.[ch]: GtkFileSystem implementation
+       for Unix files.
+
+       * configure.in gtk/Makefile.am gtk/xdgmime: Build code
+       for freedesktop.org MIME system on Unix.
+
+       * tests/testfilechooser.c: Test program for GtkFileChooser
+
+       * tests/prop-editor.c: Add support for properties on interfaces.
+
 Tue Oct 21 16:12:51 2003  Owen Taylor  <otaylor@redhat.com>
 
        * demos/gtk-demo/menus.c (do_menus): Fix some unused
index e027fd65170635f8155a6fc7b38cd2e64ee8175b..d3893a4a557def0ef81b6bf22e0dc67a56a96894 100644 (file)
@@ -1,3 +1,24 @@
+Wed Oct 22 23:20:04 2003  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilechooser.[ch] gtk/gtkfilefilter.[ch] 
+       gtk/gtkfilechooserwidget.[ch] gtk/gtkfilechooserdialog.[ch]:
+       gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]:
+       Basic framework for the new file selector widget.
+
+       * gtk/gtkfilechooserdefault.[ch] gtk/gtkcellrenderersep.[ch] 
+       gtk/gtkfilechooserentry.[ch] gtk/gtkfilesystemmodel.[ch]:
+       Initial implementation of the GtkFileChooser user interface.
+
+       * gtk/gtkfilesystemunix.[ch]: GtkFileSystem implementation
+       for Unix files.
+
+       * configure.in gtk/Makefile.am gtk/xdgmime: Build code
+       for freedesktop.org MIME system on Unix.
+
+       * tests/testfilechooser.c: Test program for GtkFileChooser
+
+       * tests/prop-editor.c: Add support for properties on interfaces.
+
 Tue Oct 21 16:12:51 2003  Owen Taylor  <otaylor@redhat.com>
 
        * demos/gtk-demo/menus.c (do_menus): Fix some unused
index 3ccfe822ee0d1d2ec65a7548bdd5426dc7e6494a..582b3d33c1bba4042f5c9257eaf050198669b689 100644 (file)
@@ -145,6 +145,7 @@ case "$host" in
 esac
 AC_MSG_RESULT([$os_win32])
 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
+AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
 
 if test "$os_win32" = "yes"; then
   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
@@ -1571,6 +1572,7 @@ gtk/gtkversion.h
 gtk/gtk-win32.rc
 gtk/stock-icons/Makefile
 gtk/theme-bits/Makefile
+gtk/xdgmime/Makefile
 modules/Makefile
 modules/input/Makefile
 contrib/Makefile
index 646894e6141aa080a919e26782c4688206d0aacc..8d630be488eb3afe691e254f0e3358f3bb521e9d 100644 (file)
@@ -2,6 +2,12 @@
 
 SUBDIRS=stock-icons theme-bits
 
+if OS_UNIX
+SUBDIRS += xdgmime
+endif
+
+DIST_SUBDIRS=stock-icons theme-bits xdgmime
+
 INCLUDES =                                             \
        -DG_LOG_DOMAIN=\"Gtk\"                          \
        -DGTK_LIBDIR=\"$(libdir)\"                      \
@@ -20,6 +26,7 @@ INCLUDES =                                            \
        -DGDK_PIXBUF_DISABLE_DEPRECATED                 \
        -DGDK_DISABLE_DEPRECATED                        \
        -DGTK_DISABLE_DEPRECATED                        \
+       -DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED            \
        $(GTK_DEBUG_FLAGS)                              \
        $(GTK_DEP_CFLAGS)
 
@@ -72,6 +79,10 @@ libadd =                                                             \
        $(top_builddir)/gdk/$(gdktargetlib)                             \
        $(GTK_DEP_LIBS)
 
+if OS_UNIX
+libadd += xdgmime/libxdgmime.la
+endif
+
 # common options for the various packages.
 libtool_opts =                                                 \
   -version-info $(LT_VERSION_INFO)                             \
@@ -133,6 +144,10 @@ gtk_public_h_sources =          \
        gtkenums.h              \
        gtkeventbox.h           \
        gtkexpander.h           \
+       gtkfilechooser.h        \
+       gtkfilechooserdialog.h  \
+       gtkfilechooserwidget.h  \
+       gtkfilefilter.h         \
        gtkfilesel.h            \
        gtkfixed.h              \
        gtkfontbutton.h         \
@@ -212,7 +227,6 @@ gtk_public_h_sources =          \
        gtktextchild.h          \
        gtktextdisplay.h        \
        gtktextiter.h           \
-       gtktextlayout.h         \
        gtktextmark.h           \
        gtktexttag.h            \
        gtktexttagtable.h       \
@@ -249,11 +263,24 @@ gtk_public_h_sources =          \
        gtkwidget.h             \
        gtkwindow.h
 
+# Installed header files without compatibility guarantees
+# that are not include in gtk/gtk.h
+gtk_semi_private_h_sources =    \
+       gtktextlayout.h         \
+       gtkfilesystem.h
+
 # GTK+ header files that don't get installed
 gtk_private_h_sources =         \
+       gtkcellrendererseptext.h\
        gtkcellview.h           \
        gtkcellviewmenuitem.h   \
        gtkentryprivate.h       \
+       gtkfilechooserentry.h   \
+       gtkfilechooserdefault.h \
+       gtkfilechooserprivate.h \
+       gtkfilechooserutils.h   \
+       gtkfilesystemunix.h     \
+       gtkfilesystemmodel.h    \
        gtkrbtree.h             \
        gtktextbtree.h          \
        gtktextchildprivate.h   \
@@ -292,6 +319,7 @@ gtk_c_sources =                 \
        gtkcelllayout.c         \
        gtkcellrenderer.c       \
        gtkcellrendererpixbuf.c \
+       gtkcellrendererseptext.c\
        gtkcellrenderertext.c   \
        gtkcellrenderertoggle.c \
        gtkcellview.c           \
@@ -317,7 +345,16 @@ gtk_c_sources =                 \
        gtkentrycompletion.c    \
        gtkeventbox.c           \
        gtkexpander.c           \
+       gtkfilechooser.c        \
+       gtkfilechooserdialog.c  \
+       gtkfilechooserentry.c   \
+       gtkfilechooserdefault.c \
+       gtkfilechooserutils.c   \
+       gtkfilechooserwidget.c  \
+       gtkfilefilter.c         \
        gtkfilesel.c            \
+       gtkfilesystem.c         \
+       gtkfilesystemmodel.c    \
        gtkfixed.c              \
        gtkfontbutton.c         \
        gtkfontsel.c            \
@@ -451,6 +488,11 @@ gtk_c_sources =                 \
        gtkwindow.c             \
        xembed.h
 
+if OS_UNIX
+gtk_private_h_sources += gtkfilesystemunix.h
+gtk_c_sources +=         gtkfilesystemunix.c
+endif
+
 gtk_plug_c_sources =            \
        gtkplug.c               \
        gtksocket.c             \
@@ -568,7 +610,7 @@ gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) Makefile
 lib_LTLIBRARIES = $(gtktargetlib)
 
 gtkincludedir = $(includedir)/gtk-2.0/gtk
-gtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkversion.h
+gtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_semi_private_h_sources) $(gtk_built_public_sources) gtkversion.h
 
 libgtk_x11_2_0_la_SOURCES = $(gtk_c_sources) $(gtk_plug_c_sources)
 libgtk_linux_fb_2_0_la_SOURCES = $(gtk_c_sources)
index 034040720b7f1a96f47cdacc413c9f6bb556eca1..e52a1a6d03b5cc63c93ac017acde202e17e52852 100644 (file)
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -74,6 +74,8 @@
 #include <gtk/gtkexpander.h>
 #include <gtk/gtkfilesel.h>
 #include <gtk/gtkfixed.h>
+#include <gtk/gtkfilechooserdialog.h>
+#include <gtk/gtkfilechooserwidget.h>
 #include <gtk/gtkfontbutton.h>
 #include <gtk/gtkfontsel.h>
 #include <gtk/gtkframe.h>
index 23d3024eb01eeaf5d703d87f345c32c997f47fed..aaa7382fab243e41851c5e255efe88ed8feb3290 100644 (file)
@@ -20,8 +20,8 @@
 
 #include "gtkfilechooser.h"
 #include "gtkfilechooserprivate.h"
-#include "gtkfilechooserenums.h"
 #include "gtkfilesystem.h"
+#include "gtktypebuiltins.h"
 
 #define _(str) (str)
 
index 738983b52b947928d0f24988fdfe43b9e3e04b50..ddb517b62f3b090c6441a6a3200ab93c3e6abc47 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
+#include "gtkalignment.h"
+#include "gtkcellrendererpixbuf.h"
 #include "gtkcellrendererseptext.h"
-#include "gtkfilechooserimpldefault.h"
+#include "gtkcellrenderertext.h"
+#include "gtkentry.h"
+#include "gtkfilechooserdefault.h"
 #include "gtkfilechooserentry.h"
-#include "gtkfilechooserenums.h"
 #include "gtkfilechooserutils.h"
 #include "gtkfilechooser.h"
 #include "gtkfilesystemmodel.h"
-
-#include <gtk/gtkalignment.h>
-#include <gtk/gtkcellrendererpixbuf.h>
-#include <gtk/gtkcellrenderertext.h>
-#include <gtk/gtkentry.h>
-#include <gtk/gtkframe.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtkhpaned.h>
-#include <gtk/gtkicontheme.h>
-#include <gtk/gtkimage.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkoptionmenu.h>
-#include <gtk/gtkscrolledwindow.h>
-#include <gtk/gtkstock.h>
-#include <gtk/gtktable.h>
-#include <gtk/gtktreeview.h>
-#include <gtk/gtktreemodelsort.h>
-#include <gtk/gtktreeselection.h>
-#include <gtk/gtktreestore.h>
-#include <gtk/gtkvbox.h>
+#include "gtkframe.h"
+#include "gtkhbox.h"
+#include "gtkhpaned.h"
+#include "gtkicontheme.h"
+#include "gtkimage.h"
+#include "gtklabel.h"
+#include "gtkmenuitem.h"
+#undef GTK_DISABLE_DEPRECATED
+#include "gtkoptionmenu.h"
+#define GTK_DISABLE_DEPRECATED
+#include "gtkprivate.h"
+#include "gtkscrolledwindow.h"
+#include "gtkstock.h"
+#include "gtktable.h"
+#include "gtktreeview.h"
+#include "gtktreemodelsort.h"
+#include "gtktreeselection.h"
+#include "gtktreestore.h"
+#include "gtktypebuiltins.h"
+#include "gtkvbox.h"
 
 #include <string.h>
 #include <time.h>
index 77ab450240cd8322eb5f37d1d4d231ff467752bf..678913c335e7b324f74dae1d30702e16bf234462 100644 (file)
@@ -20,9 +20,9 @@
 
 #include "gtkfilechooserdialog.h"
 #include "gtkfilechooserwidget.h"
-#include "gtkfilechooserenums.h"
 #include "gtkfilechooserutils.h"
 #include "gtkfilesystem.h"
+#include "gtktypebuiltins.h"
 
 #include <stdarg.h>
 
index ca29f02e262577a2ecc85df55ad54b378210ef28..da693aba38553dd4d251807887cf1c798fc0c4a9 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
-#include "gtkfilechooserentry.h"
-
-#include <gtk/gtkentry.h>
-
 #include <string.h>
 
+#include "gtkentry.h"
+#include "gtkfilechooserentry.h"
+
 typedef struct _GtkFileChooserEntryClass GtkFileChooserEntryClass;
 
 #define GTK_FILE_CHOOSER_ENTRY_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_FILE_CHOOSER_ENTRY, GtkFileChooserEntryClass))
index de19257bfcbfafc691dce6ade2a6ee72d30f73f9..546ff93e7f16f5b5acac0e495b19d87fd1cb2ef1 100644 (file)
@@ -21,8 +21,8 @@
 
 #include "gtkfilechooserutils.h"
 #include "gtkfilechooser.h"
-#include "gtkfilechooserenums.h"
 #include "gtkfilesystem.h"
+#include "gtktypebuiltins.h"
 
 static void           delegate_set_current_folder     (GtkFileChooser    *chooser,
                                                       const GtkFilePath *path);
index 0ad7e823e57f574c14984d99396ab3b6c92455a1..bfc3b81c5be2b6baf2b445119d6d7d403ea47aa0 100644 (file)
  */
 
 #include "gtkfilechooserwidget.h"
-#include "gtkfilechooserimpldefault.h"
-#include "gtkfilechooserenums.h"
+#include "gtkfilechooserdefault.h"
 #include "gtkfilechooserutils.h"
+#ifdef G_OS_UNIX
 #include "gtkfilesystemunix.h"
+#endif
+#include "gtktypebuiltins.h"
 
 struct _GtkFileChooserWidgetPrivate
 {
index 762f92355992cddeacdd07091d2d15aff9f568f3..9f9c223965c9bf3979ac5917d275ed46149e8c6a 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
-#include "gtkfilefilter.h"
-
-#include <gtk/gtkobject.h>
-
 #include <string.h>
 
+#include "gtkfilefilter.h"
+#include "gtkobject.h"
+
 typedef struct _GtkFileFilterClass GtkFileFilterClass;
 typedef struct _FilterRule FilterRule;
 
@@ -317,11 +316,6 @@ gtk_file_filter_get_needed (GtkFileFilter *filter)
   return filter->needed;
 }
 
-/* Remove once we merge into GTK+ and use _gtk_fnmatch().
- */   
-gboolean _gtk_file_chooser_fnmatch (const char *pattern,
-                                   const char *string);
-
 /**
  * gtk_file_filter_filter:
  * @filter: a #GtkFileFilter
@@ -359,7 +353,7 @@ gtk_file_filter_filter (GtkFileFilter           *filter,
            return TRUE;
          break;
        case FILTER_RULE_PATTERN:
-         if (_gtk_file_chooser_fnmatch (rule->u.pattern, filter_info->display_name))
+         if (_gtk_fnmatch (rule->u.pattern, filter_info->display_name))
            return TRUE;
          break;
        case FILTER_RULE_CUSTOM:
index ff782f0c2f1e1fcb38a4068dbf67a2138234b192..ea7c4fee749048ffc0b7b70fcf254a1505af5a74 100644 (file)
@@ -18,9 +18,9 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <gtk/gtkicontheme.h>
 
 #include "gtkfilesystem.h"
+#include "gtkicontheme.h"
 
 #include <string.h>
 
index 18ba61ca5dc6e6c6d47d4b4b87490d68914e5389..ee962b2599f58dead8edc1a95308724e99215150 100644 (file)
 #ifndef __GTK_FILE_SYSTEM_H__
 #define __GTK_FILE_SYSTEM_H__
 
+/* This is a "semi-private" header; it is meant only for
+ * alternate GtkFileChooser backend modules; no stability guarantees 
+ * are made at this point
+ */
+#ifndef GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED
+#error "GtkFileSystem is not supported API for general use"
+#endif
+
 #include <glib-object.h>
 #include <gtk/gtkwidget.h>     /* For icon handling */
 
index 75762cff5cc6bd1dc62e19227457a25075e229b9..c69e29a4159ac50a83078189b4d199533e1c509b 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
+#include <string.h>
+
 #include "gtkfilesystemmodel.h"
 #include "gtkfilesystem.h"
-#include <gtk/gtktreemodel.h>
-#include <string.h>
+#include "gtktreemodel.h"
 
 typedef struct _GtkFileSystemModelClass GtkFileSystemModelClass;
 typedef struct _FileModelNode           FileModelNode;
index ded5389ceb4f7108518b5198c05909aef116342f..60a1fbd7ecd1f7f059957eb425425695cbef798b 100644 (file)
@@ -21,6 +21,7 @@
 #include "gtkfilesystem.h"
 #include "gtkfilesystemunix.h"
 
+#define XDG_PREFIX _gtk_xdg
 #include "xdgmime/xdgmime.h"
 
 #include <errno.h>
index 5edd02d7d09f7fada4b3d9e5de50245dfa1d04e9..38c427a7e3b116b316d30de642bcb4f403fca8f0 100644 (file)
@@ -1,4 +1,4 @@
-INCLUDES = -DXDG_PREFIX=_xdg
+INCLUDES = -DXDG_PREFIX=_gtk_xdg
 
 noinst_LTLIBRARIES = libxdgmime.la
 
index a669fce39f5e3034a99e1db9f3ef2fe7fc4287ed..f777438d624015146e1448d4c75e64fdbe3ab5e0 100644 (file)
@@ -31,6 +31,7 @@ noinst_PROGRAMS =                     \
        testcalendar                    \
        testcombo                       \
        testdnd                         \
+       testfilechooser                 \
        testgtk                         \
        testicontheme                   \
        testinput                       \
@@ -64,6 +65,7 @@ testicontheme_DEPENDENCIES = $(TEST_DEPS)
 testcalendar_DEPENDENCIES = $(TEST_DEPS)
 testcombo_DEPENDENCIES = $(TEST_DEPS)
 testdnd_DEPENDENCIES = $(TEST_DEPS)
+testfilechooser_DEPENDENCIES = $(TEST_DEPS)
 testgtk_DEPENDENCIES = $(TEST_DEPS)
 testinput_DEPENDENCIES = $(TEST_DEPS)
 testmenus_DEPENDENCIES = $(TEST_DEPS)
@@ -90,6 +92,7 @@ simple_LDADD = $(LDADDS)
 testcalendar_LDADD = $(LDADDS)
 testcombo_LDADD = $(LDADDS)
 testdnd_LDADD = $(LDADDS)
+testfilechooser_LDADD = $(LDADDS)
 testgtk_LDADD = $(LDADDS)
 testicontheme_LDADD = $(LDADDS)
 testinput_LDADD = $(LDADDS)
@@ -119,6 +122,10 @@ pixbuf_random_LDADD = $(LDADDS)
 testmerge_LDADD = $(LDADDS)
 testactions_LDADD = $(LDADDS)
 
+testfilechooser_SOURCES =      \
+       prop-editor.c           \
+       testfilechooser.c       
+
 testgtk_SOURCES =      \
        prop-editor.c   \
        testgtk.c       
index 851f700a6b0adbbbaaaa46117aa54269bc8bd2d2..c9fe9d6d3b342597c6299c85e5b10ad252c51ba9 100644 (file)
@@ -686,13 +686,20 @@ properties_from_type (GObject     *object,
   GtkWidget *sw;
   GtkWidget *vbox;
   GtkWidget *table;
-  GObjectClass *class;
   GParamSpec **specs;
   gint n_specs;
   int i;
 
-  class = G_OBJECT_CLASS (g_type_class_peek (type));
-  specs = g_object_class_list_properties (class, &n_specs);
+  if (G_TYPE_IS_INTERFACE (type))
+    {
+      gpointer vtable = g_type_default_interface_peek (type);
+      specs = g_object_interface_list_properties (vtable, &n_specs);
+    }
+  else
+    {
+      GObjectClass *class = G_OBJECT_CLASS (g_type_class_peek (type));
+      specs = g_object_class_list_properties (class, &n_specs);
+    }
         
   if (n_specs == 0)
     return NULL;
@@ -775,7 +782,9 @@ create_prop_editor (GObject   *object,
   GtkWidget *properties;
   GtkWidget *label;
   gchar *title;
-
+  GType *ifaces;
+  guint n_ifaces;
+  
   if ((win = g_object_get_data (G_OBJECT (object), "prop-editor-win")))
     {
       gtk_window_present (GTK_WINDOW (win));
@@ -820,6 +829,20 @@ create_prop_editor (GObject   *object,
          
          type = g_type_parent (type);
        }
+
+      ifaces = g_type_interfaces (G_TYPE_FROM_INSTANCE (object), &n_ifaces);
+      while (n_ifaces--)
+       {
+         properties = properties_from_type (object, ifaces[n_ifaces], tips);
+         if (properties)
+           {
+             label = gtk_label_new (g_type_name (ifaces[n_ifaces]));
+             gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
+                                       properties, label);
+           }
+       }
+
+      g_free (ifaces);
     }
   else
     {
index 5ec115d897a42991e92c5921f48d45d355bd99fd..d813549536d3fdef3edcacc014b1f89ba3e43dc3 100644 (file)
@@ -6,16 +6,8 @@
 #include <unistd.h>
 
 #include <gtk/gtk.h>
-#include "gtkfilechooserdialog.h"
-#include "gtkfilechooser.h"
 #include "prop-editor.h"
 
-#ifdef USE_GNOME_VFS
-#include "gtkfilesystemgnomevfs.h"
-#else
-#include "gtkfilesystemunix.h"
-#endif
-
 static GtkWidget *preview_label;
 static GtkWidget *preview_image;
 
@@ -300,22 +292,14 @@ main (int argc, char **argv)
   GtkWidget *button;
   GtkWidget *dialog;
   GtkWidget *prop_editor;
-  GtkFileSystem *file_system;
   GtkFileFilter *filter;
   GtkWidget *preview_vbox;
   GtkWidget *extra;
   
   gtk_init (&argc, &argv);
 
-#ifdef USE_GNOME_VFS
-  file_system = gtk_file_system_gnome_vfs_new ();
-#else  
-  file_system = gtk_file_system_unix_new ();
-#endif
-  
   dialog = g_object_new (GTK_TYPE_FILE_CHOOSER_DIALOG,
                         "action", GTK_FILE_CHOOSER_ACTION_OPEN,
-                        "file-system", file_system,
                         "title", "Select a file",
                         NULL);